package br.edu.facear.produto;

import java.util.Date;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.Lob;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.apache.catalina.util.Base64;

import br.edu.facear.empresa.Empresa;

@Entity
@Table(name="produto")
public class Produto {
	
	@Id
	@GeneratedValue
	@Column(name="cod_produto")
	private Integer codProduto;
	
	@Column(name="cat_produto")
	private String catProduto;
	
	@Column(name="nom_produto")
	private String nomeProduto;
	
	@Column(name="des_produto")
	private String descProduto;
	
	@Column(name="val_produto")
	private Float valorProduto;
	
	@Column(name="ima_produto")
	@Lob
	private byte[] imagemProduto;
	
	@ManyToOne(fetch=FetchType.EAGER, cascade={CascadeType.MERGE})
	@JoinColumn(name="cod_empresa", nullable=false)
	private Empresa codEmpresa;
	
	@Transient
	private String foto;

	public String getFoto() {
		foto = Base64.encode(imagemProduto);
		return foto;
	}

	public void setFoto(String foto) {
		this.foto = foto;
	}

	public Integer getCodProduto() {
		return codProduto;
	}

	public void setCodProduto(Integer codProduto) {
		this.codProduto = codProduto;
	}

	public String getCatProduto() {
		return catProduto;
	}

	public void setCatProduto(String catProduto) {
		this.catProduto = catProduto;
	}

	public String getNomeProduto() {
		return nomeProduto;
	}

	public void setNomeProduto(String nomeProduto) {
		this.nomeProduto = nomeProduto;
	}

	public String getDescProduto() {
		return descProduto;
	}

	public void setDescProduto(String descProduto) {
		this.descProduto = descProduto;
	}

	public Float getValorProduto() {
		return valorProduto;
	}

	public void setValorProduto(String valorProduto) {
		this.valorProduto = Float.parseFloat(valorProduto.replaceAll("\\.", "").replaceAll(",", "."));
	}

	public byte[] getImagemProduto() {
		return imagemProduto;
	}

	public void setImagemProduto(byte[] imagemProduto) {
		this.imagemProduto = imagemProduto;
	}

	public Empresa getCodEmpresa() {
		return codEmpresa;
	}

	public void setCodEmpresa(Empresa codEmpresa) {
		this.codEmpresa = codEmpresa;
	}
}
